package com.hbqyml.service.impl;

import com.hbqyml.common.utils.DateUtils;
import com.hbqyml.domain.ClassifyXcx;
import com.hbqyml.domain.EnterpriseXcx;
import com.hbqyml.domain.ProductXcx;
import com.hbqyml.domain.RegionXcx;
import com.hbqyml.domain.vo.EnterpriseAndProduct;
import com.hbqyml.domain.vo.EnterpriseXcxVo;
import com.hbqyml.mapper.EnterpriseXcxMapper;
import com.hbqyml.service.IEnterpriseXcxService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 企业信息Service业务层处理
 *
 * @author houyutong
 * @date 2022-03-22
 */
@Service
public class EnterpriseXcxServiceImpl implements IEnterpriseXcxService {
    @Autowired
    private EnterpriseXcxMapper enterpriseXcxMapper;

    /**
     * 查询企业信息
     *
     * @param id 企业信息主键
     * @return 企业信息
     */
    @Override
    public EnterpriseAndProduct selectEnterpriseXcxById(Integer id) {
        EnterpriseAndProduct enterpriseAndProduct = new EnterpriseAndProduct();
        EnterpriseXcx enterpriseXcx = enterpriseXcxMapper.selectEnterpriseXcxById(id);
        BeanUtils.copyProperties(enterpriseXcx, enterpriseAndProduct);
        //根据企业id获取企业产品
        List<ProductXcx> product = enterpriseXcxMapper.getProduct(id);
        enterpriseAndProduct.setProduct(product);
        return enterpriseAndProduct;
    }

    /**
     * 查询企业信息列表
     *
     * @param enterpriseXcx 企业信息
     * @return 企业信息
     */
    @Override
    public List<EnterpriseXcx> selectEnterpriseXcxList(EnterpriseXcx enterpriseXcx) {
        return enterpriseXcxMapper.selectEnterpriseXcxList(enterpriseXcx);
    }

    /**
     * 新增企业信息
     *
     * @param enterpriseXcx 企业信息
     * @return 结果
     */
    @Override
    public int insertEnterpriseXcx(EnterpriseXcx enterpriseXcx) {
        enterpriseXcx.setCreateTime(DateUtils.getNowDate());
        return enterpriseXcxMapper.insertEnterpriseXcx(enterpriseXcx);
    }

    /**
     * 修改企业信息
     *
     * @param enterpriseXcx 企业信息
     * @return 结果
     */
    @Override
    public int updateEnterpriseXcx(EnterpriseXcx enterpriseXcx) {
        return enterpriseXcxMapper.updateEnterpriseXcx(enterpriseXcx);
    }

    /**
     * 批量删除企业信息
     *
     * @param ids 需要删除的企业信息主键
     * @return 结果
     */
    @Override
    public int deleteEnterpriseXcxByIds(Integer[] ids) {
        return enterpriseXcxMapper.deleteEnterpriseXcxByIds(ids);
    }

    /**
     * 删除企业信息信息
     *
     * @param id 企业信息主键
     * @return 结果
     */
    @Override
    public int deleteEnterpriseXcxById(Integer id) {
        return enterpriseXcxMapper.deleteEnterpriseXcxById(id);
    }

    /**
     * 小程序列表
     *
     *
     * @param region 地区id
     * @param classify 类型id
     * @param search 查询信息
     * @return
     */
    @Override
    public List<EnterpriseXcxVo> selectXcxList(Integer region, Integer classify, String search) {
        return enterpriseXcxMapper.selectXcxList(region,classify,search);
    }

    /**
     * 获取所有分类
     * @return
     */
    @Override
    public List<ClassifyXcx> getClassifyList() {
        return enterpriseXcxMapper.getClassifyList();
    }

    /**
     * 获取地区
     * @param area
     * @return
     */
    @Override
    public List<RegionXcx> getAllArea(Integer area) {
        return enterpriseXcxMapper.getAllArea(area);
    }
}
